kennydzzze
10-04-2016, 11:43
Пишу на Си в linuxe, компилирую код с помощью gcc. Компилятор ругается на адреса в функции.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void default_optionsFunction(int &password_lenght, int &number_of_passwords, char **password_generation)
{
srand(time(NULL));
password_lenght=10; // Длина пароля
number_of_passwords=1; // Количество паролей
const int lower_case=1; // Подключение нижнего регистра
const int capital_letters=1; // Подключение верхнего регистра
int symbolType=NULL; // Тип символов
int variants_of_symbols = password_lenght/(lower_case + capital_letters); // Формула вычисления количества используемых символов каждого типа
// Выделение памяти для паролей
int result=NULL; // Переменная (генерация необходимого количества паролей)
int symbol=NULL; // Переменная (индекс символа)
password_generation = (char **)malloc(number_of_passwords*sizeof(char *));
for (result=0; result < number_of_passwords; result++)
{
password_generation[result] = (char*)malloc(password_lenght*sizeof(char));
}
// Генерация паролей
result=0;
while (result < number_of_passwords)
{
int lower_caseType=0; // Переменная (необходима для границ генерации символов нижнего регистра)
int capital_lettersType=0; // Переменная (необходима для границ генерации символов верхнего регистра)
for (symbol=0; symbol < password_lenght; )
{
if (symbol == password_lenght)
{
password_generation[result][symbol] = '\0';
break;
}
symbolType = rand()%2+1;
// Заполнение пароля нижним регистром
if (symbolType == 1)
{
if (lower_caseType > variants_of_symbols) continue;
if (lower_caseType < variants_of_symbols)
{
password_generation[result][symbol] = rand()%26+97;
lower_caseType++;
symbol++;
}
}
// Заполнение пароля верхним регистром
if (symbolType == 2)
{
if (capital_lettersType > variants_of_symbols) continue;
if (capital_lettersType < variants_of_symbols)
{
password_generation[result][symbol] = rand()%26+65;
capital_lettersType++;
symbol++;
}
}
}
puts(password_generation[result]);
result++;
}
return;
}
int main()
{
int a=10, b=1;
char **c;
default_optionsFunction(a, b, c);
return 0;
}
http://clip2net.com/clip/m405748/d18c7-clip-17kb.png
В чем может быть проблема?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void default_optionsFunction(int &password_lenght, int &number_of_passwords, char **password_generation)
{
srand(time(NULL));
password_lenght=10; // Длина пароля
number_of_passwords=1; // Количество паролей
const int lower_case=1; // Подключение нижнего регистра
const int capital_letters=1; // Подключение верхнего регистра
int symbolType=NULL; // Тип символов
int variants_of_symbols = password_lenght/(lower_case + capital_letters); // Формула вычисления количества используемых символов каждого типа
// Выделение памяти для паролей
int result=NULL; // Переменная (генерация необходимого количества паролей)
int symbol=NULL; // Переменная (индекс символа)
password_generation = (char **)malloc(number_of_passwords*sizeof(char *));
for (result=0; result < number_of_passwords; result++)
{
password_generation[result] = (char*)malloc(password_lenght*sizeof(char));
}
// Генерация паролей
result=0;
while (result < number_of_passwords)
{
int lower_caseType=0; // Переменная (необходима для границ генерации символов нижнего регистра)
int capital_lettersType=0; // Переменная (необходима для границ генерации символов верхнего регистра)
for (symbol=0; symbol < password_lenght; )
{
if (symbol == password_lenght)
{
password_generation[result][symbol] = '\0';
break;
}
symbolType = rand()%2+1;
// Заполнение пароля нижним регистром
if (symbolType == 1)
{
if (lower_caseType > variants_of_symbols) continue;
if (lower_caseType < variants_of_symbols)
{
password_generation[result][symbol] = rand()%26+97;
lower_caseType++;
symbol++;
}
}
// Заполнение пароля верхним регистром
if (symbolType == 2)
{
if (capital_lettersType > variants_of_symbols) continue;
if (capital_lettersType < variants_of_symbols)
{
password_generation[result][symbol] = rand()%26+65;
capital_lettersType++;
symbol++;
}
}
}
puts(password_generation[result]);
result++;
}
return;
}
int main()
{
int a=10, b=1;
char **c;
default_optionsFunction(a, b, c);
return 0;
}
http://clip2net.com/clip/m405748/d18c7-clip-17kb.png
В чем может быть проблема?