Code:
#include <stdio.h>
void indexarrayPrint();
int pointerPrint1( int *x, char **y);
int pointerPrint2( int *x, char **y);
int pointerPrint3( int *x, char **y);
int pointerPrint4( int *x, char **y);
int main(int argc, char *argv)
{
int ages[] = {23, 43, 12, 89, 2};
char *names[] = {
"Alan", "Frank",
"Mary", "John", "Lisa"
};
int *cur_age = ages;
char **cur_name = names;
indexarrayPrint(names, ages);
pointerPrint1( cur_age, cur_name);
pointerPrint2( cur_age, cur_name);
pointerPrint3( cur_age, cur_name);
pointerPrint4( cur_age, cur_name);
return 0;
}
void indexarrayPrint()
{
int ages[] = {23, 43, 12, 89, 2};
char *names[] = {
"Alan", "Frank",
"Mary", "John", "Lisa"
};
printf("indexarrayPrint: \n");
int count = sizeof(ages) / sizeof(int);
int i = 0;
for(i = 0; i < count; i++) {
printf("%s has %d years alive.\n", names[i], ages[i]);
}
printf("---\n");
}
int pointerPrint1( int *x, char **y)
{
printf("pointerPrint1: \n");
int ages[] = {23, 43, 12, 89, 2};
int count = sizeof(ages) / sizeof(int);
int i = 0;
for(i = 0; i < count; i++) {
printf("%s is %d years old.\n", *(y+i), *(x+i));
}
printf("---\n");
}
int pointerPrint2( int *x, char **y)
{
printf("pointerPrint2: \n");
int ages[] = {23, 43, 12, 89, 2};
int count = sizeof(ages) / sizeof(int);
int i = 0;
for (i = 0; i < count; i++) {
printf("%s is %d years old again.\n", y[i], x[i]);
}
printf("---\n");
}
/* This Prints Garbadge... WIP */
int pointerPrint3( int *x, char **y)
{
printf("pointerPrint3: \n");
int ages[] = {23, 43, 12, 89, 2};
char *names[] = {
"Alan", "Frank",
"Mary", "John", "Lisa"
};
int count = sizeof(ages) / sizeof(int);
int i = 0;
for (y = names, x = ages; (x - ages) < count; x++, y++) {
printf("%s lived %d years so far.\n", y, x);
}
printf("---\n");
}
int pointerPrint4( int *x, char **y)
{
printf("pointerPrint4: \n");
int ages[] = {23, 43, 12, 89, 2};
int count = sizeof(ages) / sizeof(int);
int i = 0;
for (i = 0; i < count; i++) {
printf("%p lived %p years ago...\n", &y, &x);
}
printf("---\n");
}
it works but i got 2 warnings: