当我的函数从字符串中读取浮点数并将它们放在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大小,但它没有改变任何东西.有什么想法吗?
认真?
std::vector<float> data;
std::istringstream str(text);
float fv;
while (str >> fv)
{
data.push_back(fv);
}
Run Code Online (Sandbox Code Playgroud)
现在那是c ++
| 归档时间: |
|
| 查看次数: |
140 次 |
| 最近记录: |