Προς το περιεχόμενο

error στην C--->: subscripted value is neither array nor pointer


spilia

Προτεινόμενες αναρτήσεις

Δημοσ.

μου βγαζει το παρακατω λαθος

ask1111.c:22: error: subscripted value is neither array nor pointer

ask1111.c:23: error: subscripted value is neither array nor pointer

και ο κωδικας είναι αυτος στις γραμμες αυτες

for (i=1; i<=3; i++){

fd=open(argv, O_WRONLY | O_CREAT | O_TRUNC,0644);

if (fd==-1){ /*Elegxos sfalmatos*/

perror("open");

exit(11);

}

εχω δηλωσει στην αρχη int i;

Δημοσ.

μου βγαζει το παρακατω λαθος

ask1111.c:22: error: subscripted value is neither array nor pointer

ask1111.c:23: error: subscripted value is neither array nor pointer

και ο κωδικας είναι αυτος στις γραμμες αυτες

for (i=1; i<=3; i++){

fd=open(argv, O_WRONLY | O_CREAT | O_TRUNC,0644);

if (fd==-1){ /*Elegxos sfalmatos*/

perror("open");

exit(11);

}

εχω δηλωσει στην αρχη int i;

Με το i δεν σκάω και πολύ, αυτό που με νοιάζει είναι αν έχεις δεσμεύσει μνήμη για τους δείκτες fd που επιστρέφει η open.

Δημοσ.

>int i, status, ret, n, randnumber, fd[5], num[5];
int sinolo=0, tixaios, paidipid, num;

char str, ch, buff[50], pid[10], ppid[10];/*pid kai ppid einai tipou char kai pinaka epeidi xrisimopio sinartisi sprintf poy ex orismou episterfei enan pinaka tipou char*/


main(int argc, char *argv[]){

/*Elegxos gia to an dothikan 3 akribos orismata apton xrhsth*/
if (argc!=4){
printf("Prepei na doseis 3 onomata arxeion akribos, allios to programma den leitoyrgei!!!\n");
exit(10);
}
/*dimiourgia 3 arxeion kai dimiourgia tous se periptosi pou den iparxoun*/
for (i=1 ; i<=3; i++){
fd[i]=open(argv[i], O_WRONLY | O_CREAT | O_TRUNC,0644); 
if (fd[i]==-1){	/*Elegxos sfalmatos*/
    perror("open");
    exit(11);
}

 

 

αυτος ειναι ο κωδικας απο την αρχη με βιβλιοθηκες απο πανω....

Δημοσ.

Ο κώδικας που εχεις επισυνάψει στο τελευταίο μήνυμα κανει compile και τρεχει, αν εξαιρεσεις πως το num δηλωνεται 2 φορές μια σαν πινακας ακεραίων και την δευτερη σαν ακεραιος

Δημοσ.

Φίλε για να είμαι ειλικρινής δεν κατάλαβα ακριβώς τι ήθελες να κανεις και ο κώδικας που εγραψες δεν κάνει compile για πολλούς λόγους... Έγραψα στα γρήγορα ενα προγραμμάτακι το οποίο παίρνει τις παραμέτρους του προγράμματος και ελέγχει αν έχει είδη δημιουργηθεί !

 

 

>
// C code
// Libraries
#include "stdio.h"
#include "string.h"

int i, status, ret, n, randnumber, num[5];
int sinolo=0, tixaios, paidipid;

/*pid kai ppid einai tipou char kai pinaka epeidi xrisimopio sinartisi sprintf,
poy ex orismou episterfei enan pinaka tipou char*/
char str, ch, buff[50], pid[10], ppid[10];

FILE *file;

// Main Function
main(int argc, char *argv[])
{

   /*Elegxos gia to an dothikan 3 akribos orismata apton xrhsth*/
   if (argc!=4)
   {
       printf("Prepei na doseis 3 onomata arxeion akribos, allios to programma den leitoyrgei!!!\n");
       exit(10);
   }
   /*dimiourgia 3 arxeion kai dimiourgia tous se periptosi pou den iparxoun*/
   for (i=1 ; i < 4 ; i++ )
   if (fopen ( argv[i], "r" )  == NULL)
   {
       printf("File \"%\"s created !\n",argv[i]);
       fopen ( argv[i] , "w" );
   }else{
       printf("File \"%s\" already exists !\n",argv[i]);
   }


}

 

Ελπίζω να βοηθήσει ο κώδικας :) !

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...