小编Alo*_*hal的帖子

这是错的还是我错过了什么(int count = 10,x;)

在我阅读的书中看到了这个例子,它对我来说根本没有意义,我可能错过了一些东西,但似乎你用值'10'分配计数,然后是值'x',这是不均匀的一个int.只是想知道这是否是有效的语法.

这本书说:

变量count和x以正常方式声明为整数变量.在下一行,变量intPtr被声明为"指向int的指针".请注意,这两行声明可以组合成一行:

int count = 10, x, *intPtr;
Run Code Online (Sandbox Code Playgroud)

这是程序取自:

#import <Foundation/Foundation.h>
int main (int argc, char *argv[ ])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    int count = 10, x;

    int *intPtr;

    intPtr = &count;

    x = *intPtr;

    NSLog (@"count = %i, x = %i", count, x);

    [pool drain];

    return 0;

}
Run Code Online (Sandbox Code Playgroud)

c objective-c variable-assignment assignment-operator

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

丑陋的宏观解释(仅1行)

#define STRING(s) (((String*)s)-1)
Run Code Online (Sandbox Code Playgroud)

世界上到底是 (((String*)s)-1)什么?

typedef 
struct String {
    int length;
    int capacity;
    unsigned check;
    char ptr[0];
} String;
Run Code Online (Sandbox Code Playgroud)

c

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

非常基本的Objective-C/C问题

这是我的代码:

#import <Foundation/Foundation.h>

void PrintPathInfo() {
    const char *path = [@"~" fileSystemRepresentation];
    NSLog(@"My home folder is at '%@'", path);
}

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    PrintPathInfo();

    [pool drain];
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是我的问题:程序收到信号:"EXC_BAD_ACCESS".

我真的认为问题是我的NSLog,但我不知道如何解决它.

有人可以帮帮我吗?谢谢!

objective-c

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

Python dictionary key order when printing

s={
        'userName': "4-12\u4e2a\u82f1\u6587\u5b57\u6bcd\u3001\u6570\u5b57\u548c\u4e0b\u5212\u7ebf",
        'userNameMin': "\u4e0d\u80fd\u5c0f\u4e8e4\u4e2a\u5b57",
        'userNameMax': "\u4e0d\u80fd\u8d85\u8fc712\u4e2a\u5b57",
        'userNameExist': "\u8be5\u7528\u6237\u540d\u5df2\u88ab\u6ce8\u518c\u4e86\uff0c\u8bf7\u6362\u6362",
        'userNameInvalid': "\u53ea\u652f\u6301\u82f1\u6587\u5b57\u6bcd\u3001\u6570\u5b57\u548c\u4e0b\u5212\u7ebf",
        'userNameStartInvalid': "\u7528\u6237\u540d\u4e0d\u80fd\u4ee5\u4e0b\u5212\u7ebf\u5f00\u5934",
        'nickName': "6\u4f4d\u4ee5\u5185\u4e2d\u6587\u621612\u4f4d\u4ee5\u5185\u82f1\u6587\u5b57\u7b26",
        'nickNameMin': "\u4e0d\u80fd\u5c0f\u4e8e1\u4e2a\u5b57",
        'nickNameMax': "\u4e0d\u80fd\u8d85\u8fc76\u4e2a\u6c49\u5b57\u621612\u4e2a\u82f1\u6587\u5b57\u7b26",
        'nickNameExist': "\u8be5\u540d\u5b57\u5df2\u88ab\u5360\u7528\uff0c\u8bf7\u6362\u6362",
        'nickNameInvalid': "\u53ea\u652f\u6301\u4e2d\u6587\u3001\u5b57\u6bcd\u6216\u6570\u5b57\uff0c\u4e0d\u652f\u6301\u7a7a\u683c\u548c\u7279\u6b8a\u7b26\u53f7",
        'nickNameError': "\u540d\u5b57\u4e2d\u542b\u6709\u8fdd\u7981\u8bcd\uff0c\u8bf7\u4fee\u6539\uff0c\u671b\u8c05\u89e3",
        'password': "6-16\u4f4d\u82f1\u6587\u5b57\u6bcd\u3001\u6570\u5b57\u548c\u4e0b\u5212\u7ebf",
        'passwordMin': "\u4e0d\u80fd\u5c0f\u4e8e6\u4e2a\u5b57\u7b26",
        'passwordMax': "\u4e0d\u80fd\u8d85\u8fc716\u4e2a\u5b57\u7b26",
        'passwordInvalid': "\u53ea\u652f\u6301\u82f1\u6587\u5b57\u6bcd\u3001\u6570\u5b57\u548c\u4e0b\u5212\u7ebf",
        'password1': "\u8bf7\u518d\u786e\u8ba4\u4e00\u6b21\u4f60\u8f93\u5165\u7684\u5bc6\u7801",
        'password1Invalid': "\u4e24\u6b21\u5bc6\u7801\u8f93\u5165\u4e0d\u4e00\u81f4",
        'email': "\u8bf7\u8f93\u5165\u4f60\u5e38\u7528\u7684Email",
        'emailExist': "\u8be5Email\u5df2\u88ab\u6ce8\u518c",
        'emailInvalid': "Email\u683c\u5f0f\u4e0d\u6b63\u786e",
        'sex': "\u8bf7\u9009\u62e9\u4f60\u7684\u6027\u522b",
        'validateCode': "\u8bf7\u8f93\u5165\u56fe\u50cf\u4e2d\u7684\u6587\u5b57",
        'validateCodeInvalid': "\u9a8c\u8bc1\u7801\u9519\u8bef",
        'loading': '<img align="absmiddle" alt="" src="http://images.digu.com/web_res_v1/images/ico_loading16.gif" /> \u6b63\u5728\u68c0\u67e5\u552f\u4e00\u6027',
        'checkCode': '<img align="absmiddle" alt="" src="http://images.digu.com/web_res_v1/images/ico_loading16.gif" /> \u6b63\u5728\u68c0\u67e5\u9a8c\u8bc1\u7801',
        'ok': '<img align="absmiddle" alt="ok" src="http://images.digu.com/web_res_v1/images/ico_valid.gif" />',
        'required': "\u5fc5\u586b"
    }

for i,j in s.items():
        print i,j.decode('unicode-escape')
Run Code Online (Sandbox Code Playgroud)

output:

password1 …
Run Code Online (Sandbox Code Playgroud)

python

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

C错误类型冲突

我有以下错误

error : conflicting types for 'sprintf'
error : conflicting types for 'vsprintf'
error : conflicting types for 'vprintf'
error : conflicting types for 'select'
Run Code Online (Sandbox Code Playgroud)

在我的头文件中,代码是

extern char *sprintf(char*,const char*,... )
Run Code Online (Sandbox Code Playgroud)

实际上我包括 #include <stdio.h>

但对于我们写的太阳系

# ifndef HPUX
extern char *sprintf(char*,const char*,... )
Run Code Online (Sandbox Code Playgroud)

c

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

C中的双指针问题(下一个指针,但是前面的双指针)

table.hmysql 的代码中.有以下代码

typedef struct st_table_share  
{
    ...  
    struct st_table_share * next,       /* Link to unused shares */  
      **prev;  
Run Code Online (Sandbox Code Playgroud)

在教科书中,我们通常都有

sometype *next, *prev;
Run Code Online (Sandbox Code Playgroud)

但在这里使用**prev而不是*prev.使用双指针的原因是什么prev

c pointers

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

将字符串文字传递给函数"char*"并获取编译器警告

只是一个语法问题,这是我的代码片段.(对不起,浏览器不允许我正确粘贴到堆栈溢出.)

#include <iostream>     /* 'iostream.h' is deprecated. */
#include <cstring>
#include <cstdlib>
#include <cstdio>

using namespace std;    /* Required. */

FILE *OpenFile(char *Filename)
{
        FILE *FP;

        if((FP = fopen(Filename, "r")) == NULL)
        {       /* Error opening file. */
                std::cout << "[!!] Unable to open database!"
                          << " Are you sure it exists?\n"
                          << "[<<] Database Unchanged.\n";
                exit(EXIT_FAILURE);     /* End program. */
        }

        else    /* Properly opened the file. */
                return FP;
}

int main(void)
{
        FILE *Data;     /* Our database …
Run Code Online (Sandbox Code Playgroud)

c++

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

lseek()返回0后跟新的open()

我有以下代码(它是"示例"代码,所以没什么特别的):

#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <sys/types.h>
#include <unistd.h>

int main()
{
    char buffer[9];
    int fp = open("test.txt", O_RDONLY);

    if (fp != -1) // If file opened successfully
    {
        off_t offset = lseek(fp, 2, SEEK_SET); // Seek from start of file
        ssize_t count = read(fp, buffer, strlen(buffer));
        if (count > 0) // No errors (-1) and at least one byte (not 0) was read
        {
            printf("Read test.txt %d characters from start: %s\n", offset, buffer);
        }

        close(fp);
    }

    int …
Run Code Online (Sandbox Code Playgroud)

c posix file

0
推荐指数
1
解决办法
1310
查看次数

C语言中的高效字符串连接

这是我的问题:我有一个数组,其中包含一个命令a [1],后面是几个命令args a [2],a [3],...

我需要做的是以下内容

  • 创建一个字符串,由cmd和args的组合组成,例如:

cmd arg1 arg2 arg3

  • 执行该命令字符串

这是我如何做到这一点(伪代码):

  1. 预先计算每个arg的长度并将其存储在一个数组中
  2. 获得组合(使用GNU Scientific Library)
  3. 计算分配字符串所需的字节大小(cmd + 1的长度+ arg1 + 1 + argn-1 + 1的长度)(通常为空白的+1和\ 0的末尾)
  4. 使用strcat构建字符串
  5. 执行命令字符串

好吧,它的确有效,但我想知道是否故意使用strcat实际上是有效的/正确的方法.

有什么建议?

c string-concatenation

0
推荐指数
1
解决办法
1047
查看次数