When I try to assign a value to an array using pointers, I am getting an error that float[int]
is not a valid type.
This is my code, it takes a text file that has:
1 0.005
2 0.025
3 0.01
#include <iostream>
#include <fstream>
using namespace std;
string filename;
int number_of_cells(string filename);
void read(string filename,int i,float *id_area);
int id; //int column;
float area; //double tarea;
int main()
{
string file_name="id-area-3.txt";
int ncell = number_of_cells(file_name);
cout<<" Number of lines are "<<ncell<<"\n";
float id_area[ncell][2];
read(file_name,ncell,*id_area);
}
int number_of_cells(string filename)
{
int it = 0;
ifstream theFile(filename);
while (theFile>>id>>area)
{
it++;
}
return(it);
}
void read(string filename,int i,float *id_area)
{
ifstream theFile(filename);
int j = 0;
while (theFile >> id >> area)
{
cout<<" ID:" << id << " , " << " area: " <<area << "|"<<"\n";
for (j=1;j<i;j++)
{
id_area[j][0]=id;
id_area[j][1]=area;
j++;
}
}
//cout<<typeid(arr).name();
}
I get this error:
====================[ Build | Laser_ablation_nanoparticles | Debug ]============
"C:\Program Files\JetBrains\CLion 2023.1.5\bin\cmake\win\x64\bin\cmake.exe" --build C:\Users\Vishal\CLionProjects\Laser_ablation_nanoparticles\cmake-build-debug --target Laser_ablation_nanoparticles -j 6
[1/2] Building CXX object CMakeFiles/Laser_ablation_nanoparticles.dir/main.cpp.obj
FAILED: CMakeFiles/Laser_ablation_nanoparticles.dir/main.cpp.obj
C:\PROGRA~1\JETBRA~1\CLION2~1.5\bin\mingw\bin\G__~1.EXE -I"C:/Users/Vishal/Documents/Academic documents/MSc/Manchester/dissertation/Eigen/eigen-3.4.0" -g -fdiagnostics-color=always -std=gnu++23 -MD -MT CMakeFiles/Laser_ablation_nanoparticles.dir/main.cpp.obj -MF CMakeFiles\Laser_ablation_nanoparticles.dir\main.cpp.obj.d -o CMakeFiles/Laser_ablation_nanoparticles.dir/main.cpp.obj -c C:/Users/Vishal/CLionProjects/Laser_ablation_nanoparticles/main.cpp
C:/Users/Vishal/CLionProjects/Laser_ablation_nanoparticles/main.cpp: In function 'void read(std::string, int, float*)':
C:/Users/Vishal/CLionProjects/Laser_ablation_nanoparticles/main.cpp:45:**23: error: invalid types 'float[int]' for array subscript
45 | id_area[j][0]=id;
| ^
C:/Users/Vishal/CLionProjects/Laser_ablation_nanoparticles/main.cpp:46:23: error: invalid types 'float[int]' for array subscript
46 | id_area[j][1]=area;
| ^**
ninja: build stopped: subcommand failed.