Когда я запускаю следующую ошибку сегментации ... Целью является копирование массива argv для разрешения массива allowdip.Ошибка сегментации (сбрасывание ядра) при попытке копирования массива C
char *allowdip;
int *allowdipcount;
int main(int argc, char *argv)
{
int xer;
allowdipcount = argc;
for(xer=0; xer<allowdipcount; xer++) {
allowdip[xer]=argv[xer];
}
for(xir=0; xir<allowdipcount -1; xir++) {
printf("%s\n", allowdip[xir]);
}
exit(EXIT_SUCCESS);
}
Любые идеи о том, что я делаю неправильно?
UPDATE
Спасибо, теперь мой код:
char **allowdip;
int allowdipcount;
int main(int argc, char *argv)
{
int xer;
int xir;
allowdipcount = argc;
char **allowdip = malloc(allowdipcount * sizeof(char*));
for(xer=0; xer<argc; xer++) {
allowdip[xer]=argv[xer];
}
for(xir=1; xir<allowdipcount; xir++)
printf("%s\n", allowdip[xir]);
exit(EXIT_SUCCESS);
}
возвращается:
testscript2.c:51: warning: assignment makes pointer from integer without a cast
линия 51 содержит:
allowdip[xer]=argv[xer];
'int * allowdipcount;' -> 'int allowdipcount;' и 'aloowip' не инициализировать – BLUEPIXY
Для начала получите достойный компилятор. Затем обратите внимание на диагностику, которую он создает для кода, который вы опубликовали. –
'char * argv' - Это дерьмо. –