В моем коде ниже:Как распечатать массив символов, используя указатель на этот массив
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define BLOCKSIZE 256;
int main()
{
char text[BLOCKSIZE];
char *new_line;
new_line=strcpy(text,"hello");
int i;
for(i=0;i<sizeof(text)/sizeof(char);i++)
{
printf("%c",*(new_line+i));
}
return 0;
}
Я пытаюсь напечатать строку «привет» на экране с помощью указателя, который указывает на адрес из текст массива символов. Но в моем коде я получаю строку hello, продолженную некоторыми значениями мусора, а затем приводит к сбросу ядра. Может ли кто-нибудь показать мне правильный путь? Благодаря
'символ * PTR = текст; while (* ptr) printf ("% c", * ptr ++); 'Ваш код пытается напечатать 256' char' of '" hello "', который длится всего 6 'char'. GTG – chux
Спасибо, что делает (* ptr)? Какое состояние есть * ptr? – Arnold
'* ptr' берет указатель' ptr' и читает то, на что указывает: некоторый 'char'. Значение этого 'char' проверяется в' while (* ptr) 'для истинности (это отличное от нуля)? Поэтому, если конец строки не достигнут ('' \ 0''), цикл while продолжается. – chux