Start New Discussion within our Software Development Community

Hey!

I'm looking for some help on what I'm doing wrong as I'm new to C#. I'd really like it if you can explain why my code isn't working and then offer some help on how to fix it without "making it easy" for me ;o) I have to understand what's happening :oP hehe...

On to the problem:

I have a linked list containing pointers to lines read from a file. What I would like to do is copy these lines into a char.

Can I use *strcpy for this? The way I use *strcpy now isn't working; I'm not getting the entire text copied. Maybe the error isn't the strcpy but some other part of my code?

Here's the code I guess is relevant:

struct lenket{
	struct lenket *neste;
	char *dir;
};

struct lenket *liste = NULL, *siste = NULL, *pdp, *q;
int main(int argc, char **argv)
{
		FILE *fp;
		char *everything;
		unsigned int filesize;
		char *p1, *p2;
		char *filnavn = argv[2];

		if ((fp = fopen(filnavn,"r")) != NULL) {
			printf("Filen %s er ├ąpnet.\n\n", filnavn);
 			fseek(fp, 0, SEEK_END);
			filesize = ftell(fp);
			p1=p2 = everything = malloc(sizeof(char) * filesize);
			fseek(fp, 0, SEEK_SET);
			fread(everything, 1, filesize+1, fp);
			everything[filesize] = 0;
	
			while(p1-everything < filesize){
				if(*p1 =='\n'|| p1-everything == filesize-1 ){
					if(*p1==0){
						break;
					}

					*p1='\0';
					pdp=malloc(sizeof(struct lenket));
					pdp->neste=NULL;
					pdp->dir=malloc(p1-p2+1);
					strncpy(pdp->dir, p2, p1-p2);
					if(liste==NULL){
						liste=siste=pdp;
					}else{
						siste->neste=pdp;
						siste=pdp;
					}
					p2=p1+1;
				}else{
					++p1;
				}
			}
			pdp=liste;
char *teksten = NULL;
				teksten=malloc(sizeof(teksten)+1);

				do {
					*strcpy(teksten, pdp->dir);
					printf("%s\n", pdp->dir);
				} while((pdp=pdp->neste) != NULL);

All help is appreciated! :o)

This article has been dead for over six months. Start a new discussion instead.