I'm trying to use new but I can't seem to get it right...
in this example I ask how many strings the user would want to input, then ask for each one, then echo them back.
#include<iostream>
using namespace std;
int main(int argc, char** argv){
int num, i;
char** a;
cout<< "how many strings? ";
cin>> num;
*a = new char[num];
for(i=0;i<num;i++){
cout<< "enter a string: ";
cin>> a[i];
}
for(i=0;i<num;i++){
cout<< "string "<< i<< ": "<< a[i]<< endl;
}
return 0;
}
I wind up with this (in linux):
how many strings? 3
enter a string: hello
enter a string: there
Segmentation Fault
I tried moving the *s around, putting them on a, taking them back off, etc. nothing has worked... All it did was change when the segfault happened. What am I doing wrong?
--EDIT--
I also tried *a = new char[num][80]
and *a = new *char[num]
to no avail.
If I use what is written above, and only choose to write 1 string, it works fine.