У меня есть упражнение, в котором я создал функцию, которая генерирует случайную строку! Когда я запускаю программу в Windows, она работает нормально, но когда я пытаюсь запустить ту же программу в Linux, я получаю ошибку сегментации. Я сделал отладку в linux , и я так:Ошибка сегментации случайной строки генератора
** Программный сигнал SIGSEGV, ошибка сегментации. 0x08048be5 в get_unique_name()() **
Код get_unique_name()
/*Function that generates random strings*/
string get_unique_name()
{
char* s ;
for (int i = 0; i < 3 ; ++i)
{
int randomChar = rand()%(26+26+10);
if (randomChar < 26)
s[i] = 'a' + randomChar;
else if (randomChar < 26+26)
s[i] = 'A' + randomChar - 26;
else
s[i] = '0' + randomChar - 26 - 26;
}
s[3] = 0;
return s ;
}
Hi. Ваш динамический массив не выделен. Ваша ошибка в основном означает, что вы пытаетесь получить доступ к памяти, которая вам недоступна. Взгляните сюда, например: http://web.cs.swarthmore.edu/~newhall/unixhelp/C_arrays.html – scana