Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] gcc ругается на адреса & в функции

Ответить
Настройки темы
C/C++ - [решено] gcc ругается на адреса & в функции

Пользователь


Сообщения: 55
Благодарности: 0

Профиль | Отправить PM | Цитировать


Пишу на Си в linuxe, компилирую код с помощью gcc. Компилятор ругается на адреса в функции.

PHP код: Выделить весь код

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void default_optionsFunction(int &password_lenghtint &number_of_passwordschar **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=0result number_of_passwordsresult++)
    {
        
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=0symbol 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=10b=1;
    
char **c;
    
    
default_optionsFunction(abc);
    
    return 
0;




В чем может быть проблема?

Отправлено: 11:43, 10-04-2016

 

Ветеран


Сообщения: 1405
Благодарности: 135

Профиль | Отправить PM | Цитировать


Попробуйте исполльзовать g++ для компиляции

-------
Ehhh.. what's up, doc?..


Отправлено: 13:48, 10-04-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 55
Благодарности: 0

Профиль | Отправить PM | Цитировать


mrcnn, Выбор компилятора не от меня зависит, учебное заведение не разрешает пока что писать на с++ и использовать g++.

Отправлено: 14:15, 10-04-2016 | #3


Ветеран


Сообщения: 1405
Благодарности: 135

Профиль | Отправить PM | Цитировать


Тогда обращайтесь по указателю
Код: Выделить весь код
#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;
}

-------
Ehhh.. what's up, doc?..

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:26, 10-04-2016 | #4


Пользователь


Сообщения: 55
Благодарности: 0

Профиль | Отправить PM | Цитировать


mrcnn, спасибо, помогло.

Отправлено: 14:45, 10-04-2016 | #5


Пользователь


Сообщения: 55
Благодарности: 0

Профиль | Отправить PM | Цитировать


del

Последний раз редактировалось kennydzzze, 11-04-2016 в 08:41.


Отправлено: 07:24, 11-04-2016 | #6


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата kennydzzze:
Чтобы тему новую не создавать, »
Это против Правил.

Отправлено: 08:38, 11-04-2016 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] gcc ругается на адреса & в функции

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
MSFT SQL Server - Запрос ругается на неверный оператор __sa__nya Программирование и базы данных 1 28-04-2015 07:25
Аваст ругается на URL:Mal erichbeast@vk Лечение систем от вредоносных программ 1 20-01-2014 20:36
Драйвер - PCI\VEN_1095&DEV_3132&SUBSYS_71321095&REV_01\4&662654C&0&00E0 kalion-kill Поиск драйверов, прошивок и руководств 1 08-11-2009 16:45
Функции в gcc Dimonweb Общий по Linux 6 08-07-2004 10:07




 
Переход