#include <stdio.h>
#include <string.h>
int main( int argc, char * argv[ ] )
{
// create two arrays we care about
const char * ages = "\x17 \x2b \x0c \x59 \x02 " ;
const char ( * names) [ 6 ] = ( void * )
"Alan\0 \0 " "Frank\0 " "Mary\0 \0 " "John\0 \0 " "Lisa\0 \0 " ;
// safely get the size of ages
int i = 0 ;
// first way using indexing
for ( i = 0 ; i < count; i++ ) {
printf ( "%s has %d years alive.\n " , * ( names+ i) , * ( ages+ i) ) ;
}
// setup the pointers to the start of the arrays
const char * cur_age = ages;
const char ( * cur_name) [ 6 ] = names;
// second way using pointers
for ( i = 0 ; i < count; i++ ) {
printf ( "%s is %d years old.\n " , * ( cur_name+ i) , * ( cur_age+ i) ) ;
}
// third way, pointers are just arrays
for ( i = 0 ; i < count; i++ ) {
printf ( "%s is %d years old again.\n " , * ( names+ i) , * ( ages+ i) ) ;
}
// fourth way with pointers in a stupid complex way
for ( cur_name = names, cur_age = ages;
( cur_age - ages) < count;
cur_name++, cur_age++ )
{
printf ( "%s lived %d years so far.\n " , * cur_name, * cur_age) ;
}
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCnsKICAvLyBjcmVhdGUgdHdvIGFycmF5cyB3ZSBjYXJlIGFib3V0CiAgY29uc3QgY2hhciAqYWdlcyA9ICJceDE3XHgyYlx4MGNceDU5XHgwMiI7CiAgY29uc3QgY2hhciAoKm5hbWVzKVs2XSA9ICh2b2lkICopCiAgICAgICJBbGFuXDBcMCIgIkZyYW5rXDAiICJNYXJ5XDBcMCIgIkpvaG5cMFwwIiAiTGlzYVwwXDAiOwoKICAvLyBzYWZlbHkgZ2V0IHRoZSBzaXplIG9mIGFnZXMKICBpbnQgY291bnQgPSBzdHJsZW4oYWdlcyk7CiAgaW50IGkgPSAwOwoKICAvLyBmaXJzdCB3YXkgdXNpbmcgaW5kZXhpbmcKICBmb3IoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CiAgICAgIHByaW50ZigiJXMgaGFzICVkIHllYXJzIGFsaXZlLlxuIiwKICAgICAgICAgICAgICAqKG5hbWVzK2kpLCAqKGFnZXMraSkpOwogIH0KCiAgcHJpbnRmKCItLS1cbiIpOwoKICAvLyBzZXR1cCB0aGUgcG9pbnRlcnMgdG8gdGhlIHN0YXJ0IG9mIHRoZSBhcnJheXMKICBjb25zdCBjaGFyICpjdXJfYWdlID0gYWdlczsKICBjb25zdCBjaGFyICgqY3VyX25hbWUpWzZdID0gbmFtZXM7CgogIC8vIHNlY29uZCB3YXkgdXNpbmcgcG9pbnRlcnMKICBmb3IoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CiAgICAgIHByaW50ZigiJXMgaXMgJWQgeWVhcnMgb2xkLlxuIiwKICAgICAgICAgICAgKihjdXJfbmFtZStpKSwgKihjdXJfYWdlK2kpKTsKICB9CgogIHByaW50ZigiLS0tXG4iKTsKCiAgLy8gdGhpcmQgd2F5LCBwb2ludGVycyBhcmUganVzdCBhcnJheXMKICBmb3IoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CiAgICAgIHByaW50ZigiJXMgaXMgJWQgeWVhcnMgb2xkIGFnYWluLlxuIiwKICAgICAgICAgICAgICAqKG5hbWVzK2kpLCAqKGFnZXMraSkpOwogIH0KCiAgcHJpbnRmKCItLS1cbiIpOwoKICAvLyBmb3VydGggd2F5IHdpdGggcG9pbnRlcnMgaW4gYSBzdHVwaWQgY29tcGxleCB3YXkKICBmb3IoY3VyX25hbWUgPSBuYW1lcywgY3VyX2FnZSA9IGFnZXM7CiAgICAgICAgICAoY3VyX2FnZSAtIGFnZXMpIDwgY291bnQ7CiAgICAgICAgICBjdXJfbmFtZSsrLCBjdXJfYWdlKyspCiAgewogICAgICBwcmludGYoIiVzIGxpdmVkICVkIHllYXJzIHNvIGZhci5cbiIsCiAgICAgICAgICAgICAgKmN1cl9uYW1lLCAqY3VyX2FnZSk7CiAgfQoKICByZXR1cm4gMDsKfQo=