pekar i C programmering|Programmering / Grafisk formgivning|Forum|Nordichardware

Search
Forum Scope


Match



Forum Options



Minimum search word length is 3 characters - maximum search word length is 84 characters
Lost password?
The forums are currently locked and only available for read only access
sp_Feed sp_TopicIcon
pekar i C programmering
Karma_K
Siktar mot toppen
Medlem
Forum Posts: 53
Member Since:
January 13, 2003
sp_UserOfflineSmall Offline
1
March 17, 2003 - 2:43 pm
sp_Permalink sp_Print

Det var ett tag sen jag pyssla med C... får inte pekare att funka nu (har glömt bort hur de ska se ut och när * och & ska annvändas).

Tex hur skulle jag skriva om följande så det funkar ?


#include <stdio.h>
#include <string.h>

void Request(char *m)
{
char* temp = "test string";
m = strdup(temp);
}

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

Request(url);

printf("%s",url);
return 0;
}

Hur skickar jag med en pekare till en funktion så jag kan stoppa in data i den där ?

Sunray
Siktar mot toppen
Medlem
Forum Posts: 73
Member Since:
December 23, 2002
sp_UserOfflineSmall Offline
290873
March 17, 2003 - 3:31 pm
sp_Permalink sp_Print

#include <stdio.h>
#include <string.h>

void Request(char *m)
{
char* temp = "test string";
strcpy(m,temp); /* Eller strcpy(m,"test string"); */
}

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

Request(url);

printf("%s",url);
return 0;
}
Karma_K
Siktar mot toppen
Medlem
Forum Posts: 53
Member Since:
January 13, 2003
sp_UserOfflineSmall Offline
290881
March 17, 2003 - 3:39 pm
sp_Permalink sp_Print

Tack för svaret med det var inte helt vad jag leta efter...
för att det ska funka som du skrev måste jag allokera minne åt url innan jag skickar den till funktionen och det vill jag undvika då den returnerar väldigt olika mängd data.
(därför jag annvänder strdup istället för strcpy då den allokerar minne samtidigt som den kopierar)...

kom på vad det var man skulle göra... pekare till pekare och så funkar det 🙂



#include <stdio.h>
#include <string.h>
//#include <stdlib.h>

void Request(char **m)
{
char* temp = "test string";

*m = strdup(temp);
}

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

Request(&url);

printf("%s",url);
return 0;
}
Sunray
Siktar mot toppen
Medlem
Forum Posts: 73
Member Since:
December 23, 2002
sp_UserOfflineSmall Offline
290889
March 17, 2003 - 3:55 pm
sp_Permalink sp_Print

Jaha, jag glömde tom att allokera minne, shit happens. =)

Sen är ju C jäkligt drygt, bättre att köra på med ren C++.

Edit: Istället för dubbelpekare så går ju referenspekare, fast jag är inte säker på om det finns i C.

zwi
Siktar mot toppen
Medlem
Forum Posts: 93
Member Since:
November 27, 2001
sp_UserOfflineSmall Offline
294410
March 22, 2003 - 5:02 pm
sp_Permalink sp_Print

#include <stdio.h>
#include <string.h>

char* Request()
{
char* temp = "test string";
return temp;
}

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

url=Request();

printf("%s",url);
return 0;
}

Lär funka.

Forum Timezone: Europe/Stockholm
Most Users Ever Online: 694
Currently Online:
Guest(s) 40
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Andreas Galistel: 16287
Jonas Klar: 15897
ilg@dd: 10810
Nyhet: 10607
Mind: 10550
Ctrl: 10355
Gueno: 9881
Guest: 9344
Snorch: 8881
Callister: 8468
Newest Members:
PetrbonFU PetrbonFU
Karine Bembry
Dolores Mcdaniels
Anibal McLeish
Francisca Alt
Alfie Everhart
Lester Huitt
Orlando Jorgensen
Mikki Lundgren
Dakota Kozlowski
Forum Stats:
Groups: 11
Forums: 59
Topics: 146630
Posts: 1300967

 

Member Stats:
Guest Posters: 2
Members: 79425
Moderators: 0
Admins: 11
Administrators: nordicadmin, Henrik Berntsson, Anton Karmehed, Carl Holmberg, Joel Oscarsson, Mikael Linnér, Mikael Schwartz, Andreas Paulsson, Nickebjrk, Mattias Pettersson, EmxL