Когда я пытаюсь запустить следующий код, я получаю ошибку seg. Я попытался запустить его через gdb, и я понимаю, что ошибка происходит как часть вызова printf
, но я потерял, почему именно он не работает.Программа вылетает, когда я даю printf указатель на массив символов
#include <stdlib.h>
#include <stdio.h>
int main() {
char c[5] = "Test";
char *type = NULL;
type = &c[0];
printf("%s\n", *type);
}
Если я заменяю printf("%s\n", *type);
с printf("%s\n", c);
я получаю "Test", напечатанный, как я ожидал. Почему он не работает с указателем на массив символов?
Я просто хотел бы nitpick: «C» не разбился, потому что C не является программой. Ваш компилятор не сработал. *** Вы использовали C, чтобы написать программу, которая сработает. *** –
Вы правы Дэвид. Я знаю, что я хотел сказать, и так вы, очевидно, но важно быть точным, когда обсуждаете подобные вещи. – WhiteHotLoveTiger
Измените свой '% s' на'% c', чтобы увидеть 'c [0]' – wulfgarpro