Click here to Skip to main content
15,888,579 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
AnswerRe: Game Programming Book Uses C and Asm How do I build these programs Pin
Maximilien10-Jun-14 3:33
Maximilien10-Jun-14 3:33 
AnswerRe: Game Programming Book Uses C and Asm How do I build these programs Pin
Richard MacCutchan10-Jun-14 4:40
mveRichard MacCutchan10-Jun-14 4:40 
GeneralRe: Game Programming Book Uses C and Asm How do I build these programs Pin
Member 1087548110-Jun-14 5:55
Member 1087548110-Jun-14 5:55 
GeneralRe: Game Programming Book Uses C and Asm How do I build these programs Pin
Richard MacCutchan10-Jun-14 6:00
mveRichard MacCutchan10-Jun-14 6:00 
QuestionLoading different Property Pages in a Property Sheet in Wizard Mode Pin
P V Sankaran9-Jun-14 22:45
P V Sankaran9-Jun-14 22:45 
SuggestionRe: Loading different Property Pages in a Property Sheet in Wizard Mode Pin
David Crow10-Jun-14 3:14
David Crow10-Jun-14 3:14 
QuestionCode Coverage tool for a maintenance project Pin
aks.8-Jun-14 23:58
aks.8-Jun-14 23:58 
QuestionPointers, Functions and XCode messages Pin
ericgahn8-Jun-14 8:07
ericgahn8-Jun-14 8:07 
Hi all;

I am relearning C after about 20 years. (I had a done a course after which never wrote a line of C code to earn beer money). I would appreciate any sort of help with my current quandary - a function returning a pointer and returning structure variables.


#include <stdio.h>

typedef struct
{
    float Centre[3];
    float Radius;
} Sphere;


Sphere *MakeSphere(float *centre, float *radius);
void PrintSphereDetails(Sphere *s);

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

    float c1[3] = {10.0,20.0,30.0};
    float r1 = 10.0;
    Sphere *s1 = MakeSphere(&c1[0], &r1);
    
    PrintSphereDetails(s1);
    
    return 0;
}

Sphere *MakeSphere(float *centre, float *radius)
{
    
    Sphere s;
    
    s.Centre[0] = *centre++;
    s.Centre[1] = *centre++;
    s.Centre[2] = *centre;
    s.Radius = *radius;
    
    return &s;
}


void PrintSphereDetails(Sphere *s)
{
    
    printf("------------------------------------------------\n");
    printf("Centre: (%6.2f, %6.2f, %6.2f)\n", s->Centre[0], s->Centre[1], s->Centre[2] );
    printf("Radius: %6.2f\n\n", s->Radius);
}


I am working in XCode and the code works, but I get a warning "Address of stack memory associated with local variable 's' returned." for the code line return &s in function MakeSphere. That is exactly what, I think, I need so what is XCode telling me?

Another problem, which XCode solved for me has to do with the way to get the values of the structure variables in function PrintSphereDetails. Initially I had them as s.Centre[0] but XCode flagged these and recommended doing s->Centre[0]. What is the difference?



Regards
Eric
The author's comes from a long line of evolved fish.

AnswerRe: Pointers, Functions and XCode messages Pin
jschell8-Jun-14 9:12
jschell8-Jun-14 9:12 
GeneralRe: Pointers, Functions and XCode messages Pin
ericgahn8-Jun-14 10:01
ericgahn8-Jun-14 10:01 
AnswerRe: Pointers, Functions and XCode messages Pin
CPallini8-Jun-14 10:00
mveCPallini8-Jun-14 10:00 
GeneralRe: Pointers, Functions and XCode messages Pin
ericgahn8-Jun-14 10:05
ericgahn8-Jun-14 10:05 
GeneralRe: Pointers, Functions and XCode messages Pin
CPallini8-Jun-14 10:11
mveCPallini8-Jun-14 10:11 
Questionhow can use a non-static class member function as the custom deleter of std::unique_ptr? Pin
Falconapollo7-Jun-14 21:18
Falconapollo7-Jun-14 21:18 
AnswerRe: how can use a non-static class member function as the custom deleter of std::unique_ptr? Pin
jschell8-Jun-14 9:17
jschell8-Jun-14 9:17 
Questionpointer to a constant string Pin
bkelly137-Jun-14 12:51
bkelly137-Jun-14 12:51 
AnswerRe: pointer to a constant string Pin
«_Superman_»7-Jun-14 21:59
professional«_Superman_»7-Jun-14 21:59 
GeneralRe: pointer to a constant string Pin
bkelly138-Jun-14 5:00
bkelly138-Jun-14 5:00 
GeneralRe: pointer to a constant string Pin
leon de boer8-Jun-14 7:50
leon de boer8-Jun-14 7:50 
GeneralRe: pointer to a constant string Pin
CPallini8-Jun-14 10:04
mveCPallini8-Jun-14 10:04 
QuestionIs this Code Valid? Pin
Manikandan106-Jun-14 17:42
professionalManikandan106-Jun-14 17:42 
AnswerRe: Is this Code Valid? Pin
Shao Voon Wong6-Jun-14 18:45
mvaShao Voon Wong6-Jun-14 18:45 
GeneralRe: Is this Code Valid? Pin
Manikandan106-Jun-14 18:54
professionalManikandan106-Jun-14 18:54 
Generalwhat does it do Pin
bkelly137-Jun-14 14:33
bkelly137-Jun-14 14:33 
GeneralRe: what does it do Pin
Richard MacCutchan7-Jun-14 22:34
mveRichard MacCutchan7-Jun-14 22:34 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.