|
|
|
|
google site
|
|||||||
| Forums | Register | Blog | Man Pages | Forum Rules | Links | Albums | FAQ | Users | Calendar | Search | Today's Posts | Mark Forums Read |
| Programming Post questions about C, C++, Java, SQL, and other programming languages here. |
![]() |
|
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
|||
|
c language + simple question regarding memory addresses and ASCII characters
Just a simple question (which may seem silly so bear with me) that arose in my mind the other day. Do ASCII characters by themselves (e.g. /n, 0, a) have an actual memory address ? My question arises, because Im aware that each time I create and initalise a pointer like this for example Code:
int *ptr = 5; I always get a null pointer error. many thanks |
| Sponsored Links | ||
|
|
|
|||
|
Quote:
|
|
|||
|
For the code I spoke of in my first post, Code:
int *ptr=5; the compiler (I am using gcc btw), produced one warning saying that a pointer from integer was made without a necessary typecast. (shamrock warned me of this, so this gcc output was probably expected). I tried this Code:
char *str="helloworld\n";
printf("string value is %s\n",*str)and found the program compiled fine, but at runtime I got a segmentation fault error. I also found that in the first code segment, if you ignore the compiler warning and run the program straight, you get the same run-time error. As pointers are meant to be assigned to memory locations (and point to values), with respect to this basic understanding and the fact that ASCII characters have memory addresses, aren't both code segments technically correct ?? Last edited by JamesGoh; 01-24-2008 at 07:18 PM.. |
|
|||
|
Code:
int *ptr=5; Pointer can only be initialized to zero or null if it does not point to a variable of that type. Code:
char *str="helloworld\n";
printf("string value is %s\n",*str)The "%s" conversion specification takes a pointer argument not the actual character that *str points to. So if you want to print the entire string... Code:
printf("string value is %s\n", str);and if you want to print the character that *str points to... Code:
printf("str points to %c\n", *str); |
|
|||
|
So this is always the case (except for user-defined strings) in real world programming, even though individual ASCII characters (such as 5) have memory addresses ?
|
|
|||
|
Quote:
Code:
char v = '5'; |
|
|||
|
Shamrock, another question do individual integers, f. point numbers and doubles have mem. addressess as well ?
thanks for your help |
| Sponsored Links | ||
|
|
![]() |
| Bookmarks |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| memory addresses | areef4u | Programming | 0 | 08-04-2006 08:43 AM |
| Multibyte characters to ASCII | jerardfjay | Shell Programming and Scripting | 8 | 11-18-2005 02:45 AM |
| Hex characters of ascii file | budrito | HP-UX | 2 | 08-10-2005 11:26 PM |
| stupid question about ascii characters | jalburger | Programming | 2 | 09-28-2004 04:56 PM |
| memory addresses | Paravozzz | Programming | 0 | 10-15-2002 01:17 PM |