LINUX.ORG.RU

ошибка сегментирования


0

0

начал изучать СИ, столкнулся с ошибкой сегментирования в gcc

... char *c; scanf("%s",c); // на этом месте возникает ошибка printf("%s",c); ...

будете пинать, но в turbo c, такой ошибки невозникает

anonymous
Ответ на: комментарий от anonymous

ты забыл выделить память. char* c; //здесь c указывает куда угодно, и scanf пишет куда-угодно, вот и ругается система.

help_us
()

> но в turbo c, такой ошибки невозникает

Windows сразу выдает BSOD? :D

#define N 10
char* c = (char *)malloc(sizeof(char) * N);
scanf("%s", c);

kondor ★★★
()

s/char *c/char *c[256/ к примеру.

Иначе происходит обращение по не инициализированному указателю.

marsijanin ★★
()
Ответ на: комментарий от anonymous

free(c) только не забудь сделать. И прочитать K&R заодно.

kondor ★★★
()
Ответ на: комментарий от anonymous

> За такое -- расстрел на месте.
Я все таки учусь... почему вместо того что бы помочь, многи начинают издеваться?

anonymous
()
Ответ на: комментарий от anonymous

> За такое -- расстрел на месте.
Я все таки учусь... почему вместо того что бы помочь, многи начинают издеваться?

anonymous
()
Ответ на: комментарий от anonymous

Это в большей степени относится к твоему первоисточнику/советчикам, провоцирующим написание заведомо небезопасного кода. Не принимай на свой счет.

anonymous
()
Ответ на: комментарий от kondor

Не правильней ли будет тут:
сalloc(N, sizeof(char));
И вообще есть ли разница между calloc и malloc, если делать
приведение типа в malloc или просто calloc для удобочитаемости?

borodun
()
Ответ на: комментарий от borodun

calloc отличается от malloc только тем, что память нулями заполняет

Reset ★★★★★
()
Ответ на: комментарий от alex_custov

На самом деле такая функция есть, но в msvc. Недавно по этому поводу в конторе с виндузятниками боролись, которые написали чего-то несобирающееся :)

Reset ★★★★★
()
Ответ на: комментарий от Yoda_The_Master

при работе со строками аперсанд неставится... вроде бы

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.