Строка должна заканчиваться \0
. Убедитесь, что выделено достаточно места для хранения терминатора.
#include <stdio.h>
int main()
{
char arr[4];
char(*ptr)[4]; // declare a pointer to an array
arr[0] = 'a';
arr[1] = 'b';
arr[2] = 'c';
arr[3] = '\0'; // <-- terminator
ptr = &arr;
printf("%s\n", arr);
//printf("%s\n", ptr);
return 0;
}
Обратите внимание, что при использовании char arr[4]
в вашем массиве будет случайный контент. Если вместо этого вы используете
char arr[4] = "abc";
Это приведет к
char arr[4] = {'a', 'b', 'c', 0};
Посмотрите, как другие места заполнены 0
, поэтому вам не нужно устанавливать его самостоятельно.