Hi,
Thanks for your input, here's a full working example:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <string.h>
#define MAX_SOURCE_LINE_LENGTH 256
#define NUM_NOUNS 6
#define NUM_VERBS 4
static void assign_matrix_vals(char *p[][6],char *z);
int extract_str_left(char *return_str, char *orig_str, int num_chars, int str_pos);
void restore_matrix(int arb_array[],int num_rows,int num_columns, int restore_num);
void print_int_matrix(int arb_array[],int num_rows,int num_columns);
int main(int argc, char *argv[])
{
int nv_matrix[NUM_VERBS][NUM_NOUNS];
char extracted_str[20];
char *p_extracted_str;
char *my_array[NUM_VERBS][NUM_NOUNS];
int i,j,l,m,n;
p_extracted_str=extracted_str;
assign_matrix_vals(my_array,"2000");
for(i=0;i<NUM_NOUNS;i++)
{
for(j=0;j<NUM_VERBS;j++)
{
nv_matrix[i][j]=atoi(my_array[i][j]);
// printf("%d ",nv_matrix[i][j]);
}
printf("\n");
}
print_int_matrix((int *)nv_matrix,3,3);
system("PAUSE");
return 0;
}
int extract_str_left(char *return_str, char *orig_str, int num_chars, int str_pos)
{
int i, position;
if((num_chars > strlen(orig_str))||(num_chars <=0)) return 1;
position=str_pos-num_chars+1;
for (i=0;i<num_chars-1;i++)
{
return_str[i]=orig_str[position+i];
}
return_str[num_chars-1]='\0';
return 0;
}
void restore_matrix(int *arb_array,int num_rows,int num_columns, int restore_num)
{
int i;
for(i=0;i<(num_rows*num_columns);i++)
{
*(arb_array + i)=restore_num;
}
}
void print_int_matrix(int *arb_array,int num_rows,int num_columns)
{
int i,j;
for(i=0;i<num_rows;i++)
{
for(j=0;j<num_columns;j++)
{
printf("%d, ", *(arb_array + (i*num_columns + j)));
// printf("%d ", arb_array[i][j]);
}
printf("\n");
}
}
static void assign_matrix_vals(char *p[][6], char *z)
{
int i,j;
for(i=0;i<NUM_NOUNS;i++)
{
for(j=0;j<NUM_VERBS;j++)
{
p[i][j]=z;
}
}
}
There's extraneous stuff there but it runs.