메모리를 할당하고 포인터로 채우고 싶습니다. 함수 매개 변수 중 하나이지만, 중요한 것은 없으므로 제발 도와주세요. 나는 모든 것이 잘 작동 할 경우로컬 함수에서 포인터 할당 및 초기화
그래서 :
void alloc(char **p, int n)
{
*p = new char[n];
}
int main() {
char * ptr = NULL;
int n = 10;
alloc(&ptr, n);
for(int i = 0; i<(n - 1); i++)
ptr[i] = '1';
ptr[n - 1] = '\0';
printf("%s", ptr);
return 0;
}
는 지금은 기능
void alloc(char **p, int n)
{
*p = new char[n];
for(int i = 0; i<(n - 1); i++)
*p[i] = '1';
*p[n - 1] = '\0';
}
int main() {
char * ptr = NULL;
int n = 10;
alloc(&ptr, n);
printf("%s", ptr);
return 0;
}
프로그램 충돌로도 할당 된 메모리를 초기화합니다. 나는 이유를 모르겠다. 제발, 누군가 설명 할 수 있니?
'*'vs'[]'의 우선 순위에 대해 잘 모르겠습니다. 아마도'char *'라고 선언 할까? – Seb
과도한 기억, 모든 사람 아래에 올바른 조언을 해줍니다. – Alecs