#include <iostream>
#include <string.h>
using namespace std;
void newBuffer(char* outBuffer, size_t sz) {
outBuffer = new char[sz];
}
int main(void) {
const char* abcd = "ABCD";
char* foo;
foo = NULL;
size_t len = strlen(abcd);
cout<<"Checkpoint 1"<<endl;
newBuffer(foo, len);
cout<<"Checkpoint 2"<<endl;
cout<<"Checkpoint 2-A"<<endl;
memset(foo, '-', len);
cout<<"Checkpoint 3"<<endl;
strncpy(foo, abcd, len);
cout<<"Checkpoint 4"<<endl;
cout << foo << endl;
int hold;
cin>>hold;
return 0;
}訪問衝突寫入位置0x00000000。 memset的函數發出
這個程序檢查點2-1和3它所試圖做是設置字符數組FOO爲char之間崩潰「 - 」,但它失敗,因爲一些訪問的問題。我不明白爲什麼會發生這種情況。非常感謝您提前!
除非這是一個玩具/教育問題:爲什麼你應該使用'std :: string'或'std ::矢量'這樣的東西在C++! –