Iam versucht, Befehlszeilenargumente zu lesen und sie in einem Array von Ganzzahlen zu speichern. Wenn ich den Code kompiliere, bekomme ich keine Fehler. Wenn ich den Code ausführen, bekomme ich - Segmentierungsfehler Core Dump. Was könnte das Problem sein?Segmentierungsfehler beim Versuch, Befehlszeilenargumente in einem Integer-Array zu kopieren
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[])
{
int N = argc;
int i = 0;
int a[N];
printf("\n Number of arguments: %d", argc);
if(argc>1){
for(i = 0;i<argc;i++){
a[i] = atoi(argv[i+1]); //read variables from command line to a[i]
}
}
else {
printf("\n Insufficient Arguments.... Exit()");
exit(1);
}
printf("\n The values stored in the array are: ");
for(i = 0;i<argc-1;i++){
printf("\n %d",a[i]); //print values
}
return 0;
}
Wenn Sie 1 zu i hinzufügen, werden Sie immer 1 zu viele Argumente lesen. du wolltest 'für (i = 1; i
LambdaBeta
Was hat Ihr Debugger gesagt, wo der Absturz war? – melpomene
Willkommen bei Stack Overflow. Es scheint so, als müssten Sie lernen, wie Sie einen Debugger verwenden, um Zeile für Zeile durch Ihren Code zu gehen, wodurch Sie wahrscheinlich leicht die Art und den Ort des Problems bestimmen können, das Sie haben. Die Verwendung eines Debuggers ist in jedem Fall das erforderliche Wissen für jeden Programmierer. Weitere Informationen finden Sie unter [Debuggen kleiner Programme] (http://ericlippert.com/2014/03/05/how-to-debug-small-programs/). –