[Techtalk] C Programming Question
S. Gwizdak
wazm at rm-f.net
Wed May 29 00:32:47 EST 2002
> Hi,
> I'm having a problem with pointer-to-array in C.
> I have to use the structure char *somename[ ] . I also
> need to store/assign data to the strings halfway thro the
> program. ( I know I can initialise it as :
> char *somename[ ] = {"data1","data2"}; etc.
> At some point in the program I need to change "data1"
> to "somethingelse1" . How do I do that?
> Thanks in advance.
Ok, here's a representation of your data structure:
somename
|
+-+
|0| ------------> data1\0
+-+
|1| ------------> data2\0
+-+
|2| ------------> data3\0
+-+
So, let's play with some code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char *p;
char *somename[] = {
"data1",
"data2",
"data3"
};
printf("%s\n", somename[1]);
p = strdup("somethingelse1");
somename[1] = p;
printf("%s\n", somename[1]);
}
strdup() is a cute little function that will malloc() some
memory, and copy the string you just sent it, into that memory.
I then tell somename[1], which happens to be a pointer, to point
at an area of memory that now contains "somethingelse1\0".
--
/* S. Gwizdak http://www.unf.edu/~gwis0001 */
int q[2561];main(y){putchar(y%80?(q[y]=y==40?1:y>80?
q[y-81]^q[y-79]:0)==1?42:32:10);y==2560?:main(++y);}
More information about the Techtalk
mailing list