Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1,2 @@
int var = 3;
int *pointer = &var;

View file

@ -0,0 +1,37 @@
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int val;
} num;
int addNodes(num **array, int elems);
int main(void) {
int numElems, i;
num *arr = NULL;
numElems = addNodes(&arr, 10);
for (i = 0; i < numElems; i++) {
printf("%d) %d\n", i+1, arr[i].val);
}
free(arr);
return 0;
}
int addNodes(num **array, int elems) {
num *temp = NULL;
int i;
for (i = 0; i < elems; i++) {
temp = realloc(*array, (i+1) * sizeof **array);
if (temp == NULL) {
free(*array); return -1;
} else {
*array = temp;
}
(*array)[i].val = i;
// Alternatives:
// ((*array)+i)->val = i; // or
// (*((*array)+i)).val = i;
}
return i;
}

View file

@ -0,0 +1,2 @@
int v = *pointer; /* sets v to the value of var (i.e. 3) */
*pointer = 42; /* sets var to 42 */

View file

@ -0,0 +1,2 @@
int othervar;
pointer = &othervar;

View file

@ -0,0 +1 @@
pointer = NULL; /* needs having stddef.h included */

View file

@ -0,0 +1 @@
pointer = 0; /* actually any constant integer expression evaluating to 0 could be used, e.g. (1-1) will work as well */

View file

@ -0,0 +1 @@
pointer = (void*)0; /* C only, not allowed in C++ */

View file

@ -0,0 +1,4 @@
int array[10];
pointer = array;
/* or alternatively: */
pointer = &array[0];

View file

@ -0,0 +1,2 @@
pointer += 3; /* pointer now points to array[3] */
pointer -= 2; /* pointer now points to array[1] */

View file

@ -0,0 +1,5 @@
v = pointer[3]; /* accesses third-next object, i.e. array[4] */
v = pointer[-1]; /* accesses previous object, i.e. array[0] */
/* or alternatively */
v = *(pointer + 3); /* array[4] */
v = *(pointer - 1); /* array[0] */