當我的函數從字符串中讀取浮點數並將它們放入void數組中時,出現分段錯誤。將字符串中的浮點數放到void數組中
// Allocate memory
void** data;
data = (void**)malloc(num_vals * sizeof(float));
// Convert text to floats
(*(float**)data)[0] = atof(strtok(text, " "));
for(int index=1; index<num_vals; index++) {
(*(float**)data)[index] = atof(strtok(NULL, " "));
std::cout << (*(float**)data)[index] << std::endl;
}
因爲該串中的大小和數據的類型是在運行時確定的空隙陣列是必要的:在段錯誤後約200次迭代的在下面的代碼環路發生。我試過增加malloc大小,但它不會改變任何東西。有什麼想法嗎?
malloc返回void *,爲什麼要投它? –
除了'std :: cout' - 這不是** C++ ** – Nim
爲什麼使用二維指針? –