Как бы мне ни было больно, вот версия вашего кода, которая, вероятно, делает то, что вы хотите.
// Allocate memory
void* data;
data = 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] << '\n';
}
Обратите внимание, однако, что если бы вы работали на меня и попытались проверить этот код, у нас было бы серьезное обсуждение вашего выбора профессии.
Я бы предпочел увидеть что-то вроде этого:
std::vector<float> v;
std::copy(std::istream_iterator<float>(std::istringstream(text)),
std::istream_iterator<float>(),
std::back_inserter(v));
P.s. Правило Роба № 47: Никогда не говори std::endl
, когда ты имеешь в виду '\n'
.