剛打算寫一下博客,就被叫去加班,還好很快就回來了,不然flag又要鴿在這裏了~
最近有在封裝多傳感器,借用橋接模式,但是搞得還是不那麼滿意,遇到指針取數據的問題,在這裏記錄一下~
來看這段代碼:
int main()
{
void* x = nullptr;
getArray(10, &x);
for (size_t i = 0; i < 10; i++)
{
cout << *((int*)x+i) << endl;
}
free(x);
x = nullptr;
}
void getArray(int nums, void** data)
{
auto size = nums * sizeof(int);
*data = static_cast<int*>(malloc(size));
for (size_t i = 0; i < nums; i++)
{
*((int*)*data+i) = i;
}
//memset(*data, 0x4, size);
}
上面的代碼涉及到兩個主要的問題:
1.二級指針;
2.memset賦值非0數值。
二級指針
這裏有一篇博客講得很好,就不做重複的事情了~
關於指針使用結束的釋放,可以看這裏;
memset()
可以看這裏~