코드에 _CrtIsValidHeapPointer 오류가 있습니다. 그리고 마침내 문제의 원인을 찾아 냈습니다.
I 아래를 설명하기 위해 예를 사용heap의 char []에 값을 어떻게 할당합니까?
char* c=(char*)malloc(20*sizeof(char));
//cout<<&c<<endl;
c="hello world";
//cout<<&c<<endl; //if you uncomment the 2 clauses,you'll see the address is the same
//which means the string literal is in the heap
cout<<c<<endl;
free(c);
1) 문자열 상수가 사용 공간이 해제 될 수없는 것 같았다? 왜?
2) valee를 char 배열에 할당하는 방법은 무엇입니까?
ps : 나는 잘 작동하는 sprintf(c,"hello world");
을 사용합니다. 그러나 더 좋은 방법?
답변을 읽은 후에. 나는 &의 의미를 오해한다는 것을 깨닫는다. c.
대신 printf("%p\n",c);
을 사용해야합니다.
[C에서 새 문자열 값을 올바르게 할당하는 방법] 가능한 복제본 (http://stackoverflow.com/questions/3131319/how-to-correctly-assign-a-new-string-value-in-c) –
@ JensGustedt : 그들은 몇 가지 연관성과 유사점을 가지고 있습니다. 그러나 나는 그것이 중복이라고 생각하지 않는다. 어쨌든 링크 해 주셔서 감사합니다. 유용합니다. – duleshi