将浮点数从字符串放入void数组

Mat*_*ino 1 c++ arrays malloc

当我的函数从字符串中读取浮点数并将它们放在void数组中时,我会遇到分段错误.在以下代码中的for循环的大约200次迭代之后发生段错误:

// 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;
}
Run Code Online (Sandbox Code Playgroud)

void数组是必需的,因为字符串中数据的大小和类型是在运行时确定的.我已经尝试过增加malloc大小,但它没有改变任何东西.有什么想法吗?

Nim*_*Nim 5

认真?

std::vector<float> data;
std::istringstream str(text);
float fv;
while (str >> fv)
{
  data.push_back(fv);
}
Run Code Online (Sandbox Code Playgroud)

现在那是c ++