почему сравнение с 11 в if( argc > 11 || argc < 2 ) {
?
в
length = argc-1;
p_heap = malloc(sizeof(length));
sizeof(length)
равно sizeof(int)
и не зависит от значенияlength
если бы это была ваша надежда
В
strcpy (p_heap, length);
strcpy получить два char*
, length определяет количество аргументов, а не адрес массива char, поэтому результат не определен и, вероятно, впечатляющий
In
convert(p_heap, length);
первый аргумент convert должен быть char**
, но p_heap
является char*
в
void convert(char** source, int length){
int *dst;
int i;
for(i=0;i<length;i++) {
dst = atoi([i]);
}
}
вы не используете источник
dst равен int*
, в то время как atoi возвращает int
[i]
???
Прежде чем давать код на SO, я рекомендую сначала проверить его компиляцию без предупреждения / ошибки, используя высокий уровень предупреждения (например, gcc -pedantic -Wextra
для gcc )