Why this time in line 12 *arr was used instead of arr
Because arr[0] is exactly the same as *arr
In general, arr[i] is exactly the same as *(arr + 1)
This is one of the most difficult and fundamental concepts of C programming. It took me years of reading and re-reading to "get it". You need to keep at this, because it's so important to understand pointers and arrays.
char *arr[] is an array of pointers. The loop keeps incrementing the address of the start of the array. Each time, it tests the contents of the first element, and if == NULL stops the loop. Each time, it prints the contents of the first element of the array, because *arr and arr[0] mean the same thing.
--------------------------------
Quote:
I always got error message like:
If you can compile, run, and understand this, it will likely help:
The second two loops are doing exactly the same thing, just written two different ways, *argv[iCount] and argv[iCount][0]
say I have a IP address which is 10.0.0.12, and subnet mask is 255.255.255.240, what is the network address and what is the broadcast address which host lives on?
And could you explain how to get the answer?
thanx in advance! (7 Replies)
Hi sir,
i want to make such programe which takes MAC(Ethernet) address of any host & give me its IP address.......
but i'm nt getting that how i can pass the MAC address to Frame........
Please give me an idea for making such program...
Thanks & regards
Krishna (3 Replies)
How do I get a pointer to any 32 bit address on my hard drive, in which I then could read that memory or write to that memory address?
And, while the subject is on, how do get a 32 bit pointer in RAM also, in which I can do the same?
I'm using C and Objective-C with gcc on an iBook G4.
A... (9 Replies)
Hi i'm new to c programming and i'm trying to change the address of a pointer/variable but i can't seem to get it right,
I have this
char heap;
char *firstFree = heap;
char *allocMem( int size ) {
void *malloc(size_t sizeofint);
/*allocate space for an array with size... (19 Replies)
If one wants to get a start address of a array or a string or a block of memory via a function, there are at least two methods to achieve it:
(1) one is to pass a pointer-to-pointer parameter, like:
int my_malloc(int size, char **pmem)
{
*pmem=(char *)malloc(size);
if(*pmem==NULL)... (11 Replies)
Trying to do a ksh script that needs to list all ip address between ip address a and b ..
ie.
Ip address A=192.168.1.200
Ip address B=192.168.2.15
So the subnet changes from 1 to 2 but I want to list all possible ip addresses between the 2..
Which would be:
192.168.1.200... (4 Replies)
:) Firstly Hi all!!, im NEW!! and on here hoping that someone might be able to offer me some help... i have a server that keeps crashing every few days with the error message:
PANIC KERNAL-MODE ADDRESS FAULT ON USER ADDRESS 0X14
KERNAL PAGE FAULT FROM (CS:EIP)=(100:EF71B5BD)
EAX=EF822000... (10 Replies)
Hi there
I lost connectivity to one of our remote systems and when I checked the messages log I found the following:
Aug 10 23:42:34 host xntpd: time reset (step) 1.681729 s
Aug 16 13:20:51 host ip: WARNING: node "mac address" is using our IP address x.x.x.x on aggr1
Aug 16 13:20:51 host... (9 Replies)
How can I print the memory address of a pointer using printf (or any other STDOUT functions?). I see in Linux its %p but not in unix, help?
thanks (5 Replies)
Hi ,
Could someone let me know how to detect duplicate ip address after assigning ip address to ethernet interface using c program (3 Replies)
Discussion started by: Gopi Krishna P
3 Replies
LEARN ABOUT ULTRIX
getopt
getopt(3) Library Functions Manual getopt(3)Name
getopt - get option letter from argument vector
Syntax
#include <stdio.h>
int getopt (argc, argv, optstring)
int argc;
char **argv;
char *optstring;
extern char *optarg;
extern int optind, opterr;
Description
The subroutine returns the next option letter in argv that matches a letter in optstring. The optstring is a string of recognized option
letters; if a letter is followed by a colon, the option is expected to have an argument that may or may not be separated from it by white
space. The optarg is set to point to the start of the option argument on return from
The function places in optind the argv index of the next argument to be processed. The external variable optind is automatically initial-
ized to 1 before the first call to
When all options have been processed (that is, up to the first non-option argument), returns EOF. The special option -- may be used to
delimit the end of the options; EOF will be returned, and -- will be skipped.
Diagnostics
The function prints an error message on stderr and returns a question mark (?) when it encounters an option letter that is not included in
optstring. Setting opterr to 0 disables this error message.
Examples
The following code fragment shows how one might process the arguments for a command that can take the mutually exclusive options a and b,
and the options f and o, both of which require arguments:
#include <stdio.h>
main (argc, argv)
int argc;
char **argv;
{
int c;
extern int optind, opterr;
extern char *optarg;
.
.
.
.
while ((c = getopt (argc, argv, "abf:o:")) != EOF)
switch (c) {
case 'a':
if (bflg)
errflg++;
else
aflg++;
break;
case 'b':
if (aflg)
errflg++;
else
bproc( );
break;
case 'f':
ifile = optarg;
break;
case 'o':
ofile = optarg;
bufsiza = 512;
break;
case '?':
errflg++;
}
if (errflg) {
fprintf (stderr, "usage: . . . ");
exit (2);
}
for ( ; optind < argc; optind++) {
if (access (argv[optind], 4)) {
.
.
.
}
See Alsogetopt(1)getopt(3)