As I understand from running your code, you want to enter a string as argument and just parse it and print it, as simple as that right?
the code isn't compiling due to a typo in line:
data[i]=(char *)malloc(sizeof(char)*l)+1);
After fixing it to:
data[i]=(char *)malloc(sizeof(char)*l+1);
The output of the code is, for "hello this is string":
hello this is string
...Program finished with exit code 0
If you still have segmentation error please post more information
Like other answerers, I'd definitely *prefer* to put the loops in a different method, at which point you can just return to stop iterating completely. This answer just shows how the requirements in the question can be met.
You can use `break` with a label for the outer loop. For example:
public class Test {
public static void main(String[] args) {
outerloop:
for (int i=0; i < 5; i++) {
for (int j=0; j < 5; j++) {
if (i * j > 6) {
System.out.println("Breaking");
break outerloop;
}
System.out.println(i + " " + j);
}
}
System.out.println("Done");
}
}
This prints:
0 0
0 1
0 2
0 3
0 4
1 0
1 1
1 2
1 3
1 4
2 0
2 1
2 2
2 3
Breaking
Done