问题列表 - 第26338页

将指针传递给函数,数据在函数中初始化,返回时显示为未初始化

我正在将GetCurrentDate()指针传递给tm结构.在该函数中,我打印未初始化的数据,然后初始化.预期成绩.

但是当我返回时,tm结构显示为未初始化.请参阅下面的控制台输 我究竟做错了什么?

未初始日期:??? ??? - 1073908332 01:9448278:-1073908376 -1217355836

初始日期:2010年5月5日星期三23:08:40

来电日期:??? ??? - 1073908332 01:9448278:-1073908376 -121735583

int main()
{
    test(); 
}

int test()
{
    struct tm* CurrentDate;
    GetCurrentDate(CurrentDate);
    printf("Caller date:%s\n",asctime (CurrentDate));
    return 1;
}

int GetCurrentDate(struct tm* p_ReturnDate)
{ 
    printf("uninitialized date:%s\n",asctime (p_ReturnDate));
    time_t m_TimeEntity;
    m_TimeEntity = time(NULL); //setting current time into a time_t struct

    p_ReturnDate = localtime(&m_TimeEntity); //converting time_t to tm struct
    printf("initialized date:%s\n",asctime (p_ReturnDate));
    return 1;
}  
Run Code Online (Sandbox Code Playgroud)

c time pointers

0
推荐指数
2
解决办法
1104
查看次数

让python迭代器倒退?

反正有没有让python列表迭代器倒退?

基本上我有这个

class IterTest(object):
    def __init__(self, data):
        self.data = data
        self.__iter = None

    def all(self):
        self.__iter = iter(self.data)
        for each in self.__iter:
            mtd = getattr(self, type(each).__name__)
            mtd(each)

    def str(self, item):
        print item

        next = self.__iter.next()
        while isinstance(next, int):
            print next
            next = self.__iter.next()

    def int(self, item):
        print "Crap i skipped C"

if __name__ == '__main__':
    test = IterTest(['a', 1, 2,3,'c', 17])
    test.all()
Run Code Online (Sandbox Code Playgroud)

运行此代码会产生输出:

a
1
2
3
Crap i skipped C
Run Code Online (Sandbox Code Playgroud)

我知道为什么它给了我输出,但是有一种方法我可以在str()方法中向后退一步吗?

编辑

好吧也许可以让这个更清楚.我不想做完全反向,基本上我想知道是否有一种简单的方法在python中做相当于双向迭代器?

python iterator list

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

子系统和组件之间的差异

我想问一下UML意义上的子系统和组件有什么区别?

uml modeling

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

Linux阻止I/O实际上如何工作?

在Linux中,当您进行阻止i/o调用(如读取或接受)时,实际发生了什么?

我的想法:进程从运行队列中取出,在某个等待队列上进入等待或阻塞状态.然后当建立tcp连接(用于接受)或硬盘驱动器准备就绪或读取文件时,会引发硬件中断,让那些进程等待唤醒并运行(在文件读取的情况下,如何linux知道要唤醒什么进程,因为可能有很多进程在等待不同的文件?).或者也许不是硬件中断,单个进程本身轮询以检查可用性.不确定,有帮助吗?

linux blocking linux-kernel

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

在JDBC中访问ResultSet时,是否有一种优雅的方法来区分空值和实际零值?

当使用JDBC并通过结果集访问基本类型时,是否有一种更优雅的方式来处理null/0而不是以下:

int myInt = rs.getInt(columnNumber)
if(rs.wasNull())?
{
 // Treat as null
} else
{
 // Treat as 0
}
Run Code Online (Sandbox Code Playgroud)

每当我看到这种代码时,我个人都会畏缩.我没有看到为什么没有定义ResultSet来返回盒装的整数类型(可能除了性能)或者至少提供两者.如果有人能说服我当前的API设计很棒,那么奖励积分:)

我的个人解决方案是编写一个返回Integer的包装器(我更关心客户端代码的优雅而不是性能),但我想知道我是否错过了更好的方法来执行此操作.

只是为了澄清一下,对于这段代码困扰我的不是长度,而是它在后续调用之间创建状态依赖性的事实,以及看似简单的getter实际上在同一行中有副作用的事实.

java jdbc resultset

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

Java中的isReachable看起来并没有像预期的那样工作

我正在使用Clojure,但我可以阅读Java,所以这不是Clojure特定的问题.这甚至似乎都不适用于Java.

我正在尝试使用isReachable实现一些'ping'功能.我正在使用的代码是这样的:

(.isReachable (java.net.InetAddress/getByName "www.microsoft.com") 5000)
Run Code Online (Sandbox Code Playgroud)

我的一位好朋友翻译成Java:

public class NetTest {
  public static void main (String[] args) throws Exception{
    String host = "acidrayne.net";
    InetAddress a = InetAddress.getByName(host);

    System.out.println(a.isReachable(10000));
  }
}
Run Code Online (Sandbox Code Playgroud)

这两个都返回false.我想我一定是做错了,但谷歌的研究告诉我的不同之处.我很困惑!

java ping clojure inetaddress

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

为什么我需要在SQL"GROUP BY"子句中显式指定所有列 - 为什么不"GROUP BY*"?

这一直困扰着我 - 为什么SQL语句中的GROUP BY子句要求我包含所有非聚合列?默认情况下应该包含这些列 - 一种"GROUP BY*" - 因为我甚至无法运行查询,除非它们全部包含在内.每列必须是聚合或在"GROUP BY"中指定,但似乎任何未聚合的列都应自动分组.

也许它是ANSI-SQL标准的一部分,但即便如此,我也不明白为什么.有人可以帮我理解这个约定的必要性吗?

sql group-by aggregate ansi-sql sql-standards

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

函数计算句子中字母的概率

我有一个函数应该计算一个字母在一个句子中出现的次数,并根据它,计算它在句子中发生的概率.要做到这一点,我有一句话:

华盛顿都市区是美国受教育程度最高,最富裕的大都市区.

一组结构,包含字母,它出现的次数,以及它发生的概率,每个字母字符有一个结构,标点符号和空格有一个附加结构:

struct letters
{
  char letter;
  int occur;
  double prob;
}box[53];
Run Code Online (Sandbox Code Playgroud)

这是函数本身:

void probability(letters box[53], int sum
{
     cout<<sum<<endl<<endl;
     for(int c8=0;c8<26;c8++)
     {      
       box[c8].prob = (box[c8].occur/sum);
       cout<<box[c8].letter<<endl;
       cout<<box[c8].occur<<endl;
       cout<<box[c8].prob<<endl<<endl;
     }
}
Run Code Online (Sandbox Code Playgroud)

它正确地识别出第一行中句子中有90个字母,根据for循环第二行中的结构打印出大写字母,并打印出它出现的次数.它连续打印0表示概率.我究竟做错了什么?

c++ character probability letters

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

C#是解释还是编译?

我认为C#生成了编译代码(通过JIT),但我最近发现我可以在C#(VS 2008)中调试模式时编辑代码.这是否意味着解释了C#?

c#

19
推荐指数
2
解决办法
3137
查看次数

你如何解决这个Haskell问题?

我想定义一个函数复制,仅使用列表推导来复制数值列表,例如:

replicate [5,1,3,2,8,1,2]
output: [5,5,5,5,5,1,3,3,3,2,2,8,8,8,8,8,8,8,8,1,2,2]
Run Code Online (Sandbox Code Playgroud)

我知道这很容易使用内置函数的'replicate',但只允许列表理解,我该怎么办呢?

谢谢!

haskell list-comprehension

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