小编Zyy*_*ins的帖子

C:将字符串数组作为函数参数传递

所以我所拥有的是一个文件main.c,它包含一个我创建的utils.h头文件,包含我的源文件utils.c中函数的前向引用.

在utils.c中:

我有一个函数接受一个字符串数组作为参数,并将其打印为菜单:

void showMenu(const char *menu[])
{
    int menulen = sizeof(menu)/sizeof(*menu);

    int i;
    for(i = 0; i < menulen; i++)
    {
        printf("[%d] .. %s\n", (i+1), menu[i]);
    }
}
Run Code Online (Sandbox Code Playgroud)

在main.c中:

我只是调用这个函数:

const char *menu[] =
{
        "Customers",
        "Orders",
        "Products"
};

int main(void)
{
    showTitle("Customer Orders System");
    int menulen = sizeof(menu)/sizeof(*menu);
    showMenu(menu);
    getch();
}
Run Code Online (Sandbox Code Playgroud)

我的问题:

我的showMenu函数正在计算数组的长度,然后迭代它,打印字符串.当函数在main.c中时,这曾经工作,但是我需要在单独的文件中组织这个项目.

现在长度计算为1.在做了一些调试后,我认为这是一个与指针相关的问题,但我似乎解决了它.调用后showMenu的参数是type

const char** menu
Run Code Online (Sandbox Code Playgroud)

只有我原始数组的第一个元素.

我尝试引用该参数,同时传递一个数组的指针.
奇怪的是,同一行代码在main函数中起作用.我真的不想通过向函数添加一个数组参数长度来解决这个问题.

任何帮助是极大的赞赏.

c arrays string arguments function

9
推荐指数
1
解决办法
8902
查看次数

C Typedef - 不完整类型

所以,出乎意料的是,编译器决定吐面:"现场客户的类型不完整".

这是相关的代码片段:

customer.c

#include <stdlib.h>
#include <string.h>

#include "customer.h"

struct CustomerStruct;
typedef struct CustomerStruct
{
    char id[8];
    char name[30];
    char surname[30];
    char address[100];
} Customer ;

/* Functions that deal with this struct here */
Run Code Online (Sandbox Code Playgroud)

customer.h

customer.h的头文件

#include <stdlib.h>
#include <string.h>

#ifndef CUSTOMER_H
#define CUSTOMER_H

    typedef struct CustomerStruct Customer;

    /* Function prototypes here */

#endif
Run Code Online (Sandbox Code Playgroud)

这是我的问题所在:

customer_list.c

#include <stdlib.h>
#include <string.h>

#include "customer.h"
#include "customer_list.h"

#include "..\utils\utils.h"


struct CustomerNodeStruct;
typedef struct CustomerNodeStruct
{
    Customer customer; /* Error Here*/
    struct CustomerNodeStruct …
Run Code Online (Sandbox Code Playgroud)

c struct typedef header-files incomplete-type

8
推荐指数
2
解决办法
4万
查看次数

C++动态加载类

我对C++还有点新意,所以请耐心等待.

我想要的是能够允许我的程序的用户能够添加他自己的类.我有一个抽象类Module,我的应用程序由一组子类组成Module.

是否有可能搜索特定目录并动态加载Module(由用户添加)的子类?

在Java中,我可以使用org.reflections API实现此目的.我猜测C++等价物正在使用DLL.我可能错了.

提前致谢.

c++ dll load class dynamic

7
推荐指数
1
解决办法
6675
查看次数

C++ - 获取特定内存地址的值

我想知道是否有可能做这样的事情:

unsigned int address = 0x0001FBDC; // Random address :P
int value = *address; // Dereference of address
Run Code Online (Sandbox Code Playgroud)

意思是,是否可以在内存中获取特定地址的值?

谢谢

c++ memory pointers memory-address dereference

5
推荐指数
1
解决办法
3万
查看次数

Android javac和dx - 麻烦处理,类名和路径不匹配

我正在使用SpartacusRex的终端IDE和另一个应用程序DroidEdit在Android上构建和运行java应用程序.一个简单的单文件Hello World构建并运行完美无缺,但是当我介绍软件包时,我无法将类文件正确地解压缩到一个jar文件中:

从我的项目目录:
javac src/mypack/*.java
这个编译成功
dx --dex --output = Test.jar src
这给我以下警告

麻烦处理:
类名(mypack/Main)与路径(Main.class)不匹配 ...在处理Main.class
时解析Main.class
...

所有路径和包名称都是正确的.Main.java位于一个名为"mypack"的文件夹中,并有一个行李声明"package mypack;".
我究竟做错了什么 ?此外,使用--no-strict删除警告但输出的jar文件未正确构建且无法运行.

任何帮助表示赞赏.谢谢 :)

java android compilation dx dalvik

2
推荐指数
1
解决办法
4681
查看次数